export default abstract class MessageHandler<TMessage extends (Chaos.IMessage | Chaos.IActorMessage)> implements Chaos.IMessageHandler {
    public async HandleAsync(request: TMessage): Promise<void> {
        this.RunAsync(request);
    }

    protected abstract RunAsync(message: TMessage): Promise<void>;
}